﻿using A.M.ETO;
using A.M.Storage.I_Application;
using L.M.System.Domain.DTO;
using L.M.System.Domain.Entity;
using L.M.System.Infrastruecure.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace L.M.System.Application.IServices
{
    public interface IStaff_tableServices: IBaseServices<staff_table,string>
    {
        /// <summary>
        /// 分页查询员工 + 分页
        /// </summary>
        /// <param name="pageSize">每页条数</param>
        /// <param name="pageIndex">当前页索引</param>
        /// <param name="tName">查询条件</param>
        /// <returns>分页查询员工 + 分页</returns>
        Task<ApiReturn<PageETO<StaffOrginDTO>>> Getstaff_tableShow(int pageSize, int pageIndex, string? tName);

        /// <summary>
        /// 员工信息添加
        /// </summary>
        /// <param name="addDTO">实体</param>
        /// <returns>员工信息添加</returns>
        Task<ApiReturn<string>> SaffAddInfor(StaffAddDTO addDTO);


        /// <summary>
        /// 获取所有的用户
        /// </summary>
        /// <returns>获取所有的用户</returns>
        Task<List<StaffInforDTO>> GetShowAllInfor();

        /// <summary>
        /// 修改用户信息
        /// </summary>
        /// <param name="userInforDTO">修改用户信息</param>
        /// <returns>修改用户信息</returns>
        Task<ApiReturn<string>> UpdStainfor(UserInforDTO userInforDTO);

        /// <summary>
        /// 修稿密码
        /// </summary>
        /// <param name="passwordDTO">密码</param>
        /// <returns>修稿密码</returns>
        Task<ApiReturn<string>> UpdPassWord(PasswordDTO passwordDTO);

        /// <summary>
        /// 修改用户信息
        /// </summary>
        /// <param name="staffUpdDTO">修改DTO</param>
        /// <returns>统一返回格式</returns>
        Task<ApiReturn<string>> StaffUpdInfor(StaffUpdDTO staffUpdDTO);

        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="getUserInfor">User</param>
        /// <returns>统一返回格式</returns>
        Task<ApiReturn<SetUserInfor>> GetInforLogin(GetUserInfor getUserInfor);

        /// <summary>
        /// 生成一个验证码
        /// </summary>
        /// <returns>生成一个验证码</returns>
        ApiReturn<string> Verification_code();

        /// <summary>
        /// 密码验证码验证
        /// </summary>
        /// <param name="sId"></param>
        /// <param name="yId"></param>
        /// <returns></returns>
        ApiReturn<string> GetVerification(string? sId, string? yId);

        /// <summary>
        /// 获取到手机号验证登录码
        /// </summary>
        /// <param name="uTel"></param>
        /// <returns></returns>
        ApiReturn<SetUserInfor> GetTelLogin(string? uTel);

        /// <summary>
        /// 验证码登录
        /// </summary>
        /// <param name="uTel">手机号</param>
        /// <param name="code">验证码</param>
        /// <returns></returns>
        Task<ApiReturn<SetUserInfor>> TelInforLogin(string? uTel, string? code);

        /// <summary>
        /// 关闭浏览器去除状态
        /// </summary>
        /// <param name="uId"></param>
        /// <returns></returns>
        Task<ApiReturn<string>> GetUpdStaty(string? uId);
    }
}
